package com.linan.util;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;


public class HttpUtils {
//    public static void main(String[] args) {
//        String host = "https://gyytz.market.alicloudapi.com";
//        String path = "/sms/smsSend";
//        String method = "POST";
//        String appcode = "你自己的AppCode";
//        Map<String, String> headers = new HashMap<String, String>();
//        //最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
//        headers.put("Authorization", "APPCODE " + appcode);
//        Map<String, String> querys = new HashMap<String, String>();
//        querys.put("mobile", "mobile");
//        querys.put("param", "**code**:12345,**minute**:5");
//
////smsSignId（短信前缀）和templateId（短信模板），可登录国阳云控制台自助申请。参考文档：http://help.guoyangyun.com/Problem/Qm.html
//
//        querys.put("smsSignId", "2e65b1bb3d054466b82f0c9d125465e2");
//        querys.put("templateId", "908e94ccf08b4476ba6c876d13f084ad");
//        Map<String, String> bodys = new HashMap<String, String>();
//
//
//        try {
//            /**
//             * 重要提示如下:
//             * HttpUtils请从\r\n\t    \t* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java\r\n\t    \t* 下载
//             *
//             * 相应的依赖请参照
//             * https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml
//             */
//            HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, bodys);
//            System.out.println(response.toString());
//            //获取response的body
//            //System.out.println(EntityUtils.toString(response.getEntity()));
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
    public static String post(Map params, String url) {
        HttpClient httpClient=new HttpClient();
        PostMethod postMethod = new PostMethod(url);//POST请求
        postMethod.addRequestHeader("Authorization","APPCODE 9fe2c9516fb34967b67f029e12e44b8f");
        //参数设置
        Set<String> keySet=params.keySet();
        System.out.println(keySet);
        NameValuePair[] postData=new NameValuePair[keySet.size()];
        int index=0;
        for(String key:keySet){
            postData[index++]=new NameValuePair(key,params.get(key).toString());
        }
        System.out.println(postData);
        postMethod.addParameters(postData);
        try{
            httpClient.executeMethod(postMethod);//发送请求
            InputStream in = postMethod.getResponseBodyAsStream();
            //下面将stream转换为String
            StringBuffer sb = new StringBuffer();
            InputStreamReader isr = new InputStreamReader(in, "UTF-8");
            char[] b = new char[4096];
            for(int n; (n = isr.read(b)) != -1;) {
                sb.append(new String(b, 0, n));
            }
            String returnStr = sb.toString();
            System.out.println(returnStr);
            return returnStr;
        }catch (IOException e){
            e.printStackTrace();
        }finally{
            postMethod.releaseConnection();//关闭连接
        }
        return "";
    }
    public String  sendMessage(String tel,String code) {
        String smsSignId = "31365a83297a4c279e40247980a4dd14";
        String templateId = "7cc654fbb5174ddc96a051b95bfab04d";
         Map<String, Object> map = new HashMap<String,Object>();
        map.put("mobile",tel);
        map.put("smsSignId",smsSignId);
        map.put("templateId",templateId);
        map.put("param","**code**:"+code);
        String result = HttpUtils.post(map, "http://gyytz.market.alicloudapi.com/sms/smsSend");
        return result;
    }
}


